﻿// 3438. 数制转换.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <map>
#include <string>
#include <algorithm>


using namespace std;
/*
https://www.acwing.com/problem/content/3441/

求任意两个不同进制非负整数的转换（2进制 ∼16进制），所给整数在 int 范围内。

不同进制的表示符号为（0，1，…，9，a，b，…，f）或者（0，1，…，9，A，B，…，F）

输入格式
输入只有一行，包含三个整数 a，n，b。
a 表示其后的 n 是 a 进制整数，b 表示欲将 a 进制整数 n 转换成 b 进制整数。

a,b 是十进制整数。

数据可能存在包含前导零的情况。

输出格式
输出包含一行，该行有一个整数为转换后的 b 进制数。

输出时字母符号全部用大写表示，即（0，1，…，9，A，B，…，F）。

数据范围
2≤a,b≤16
,
给定的 a进制整数 n 在十进制下的取值范围是 [1,2147483647]。

输入样例：
15 Aab3 7
输出样例：
210306
*/

int a, b;
string str;

map<int, char> mmint{
	{0,'0'},
	{1,'1'},
	{2,'2'},
	{3,'3'},
	{4,'4'},
	{5,'5'},
	{6,'6'},
	{7,'7'},
	{8,'8'},
	{9,'9'},
	{10,'A'},
	{11,'B'},
	{12,'C'},
	{13,'D'},
	{14,'E'},
	{15,'F'}
};

map<char, int>mm{
	{ '0',0 },
	{ '1',1 },
	{ '2',2 },
	{ '3',3 },
	{ '4',4 },
	{ '5',5 },
	{ '6',6 },
	{ '7',7 },
	{ '8',8 },
	{ '9',9 },
	{ 'a',10 },
	{ 'A',10 },
	{ 'b',11 },
	{ 'B',11 },
	{ 'c',12 },
	{ 'C',12 },
	{ 'd',13 },
	{ 'D',13 },
	{ 'e',14 },
	{ 'E',14 },
	{ 'f',15 },
	{ 'F',15 }
};

void solve() {
	int res = 0;
	for (int i = 0; i < str.size(); i++) {
		res = res * a + mm[str[i]];                                                           
	}

	string ans;
	while (res != 0) {
		int t = res % b;
		ans.push_back(mmint[t]);
		res /= b;
	}
	reverse(ans.begin(), ans.end());
	cout << ans << endl;

	return;
}

int main()
{
	cin >> a >> str >> b;
	solve();

	return 0;
}
 